package cn.tedu.straw.portal.service;

import cn.tedu.straw.commons.dto.QuestionDTO;
import cn.tedu.straw.commons.model.Question;
import cn.tedu.straw.commons.vo.QuestionListItemVO;
import cn.tedu.straw.commons.vo.QuestionVO;
import cn.tedu.straw.commons.vo.StatisticsVO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author tedu.cn
 * @since 2020-07-22
 */
public interface IQuestionService extends IService<Question> {

    void create(QuestionDTO questionDTO, Integer userid, String userNickname);

    List<QuestionListItemVO> getMostHits();
    List<QuestionListItemVO> getCachedMostHits();
//    List<QuestionVO> getQuestionByUserId(Integer userId);

    /**
     * 获取某用户某页的问题列表
     * @param userId 用户id
     * @param page 页码
     * @return 匹配问题列表
     */
    PageInfo<QuestionVO> getQuestionByUserId(Integer userId,Integer type,Integer page);
    /**
     * 根据提问的id查找问题详情
     *
     * @param id 问题的id
     * @return 匹配的问题的详情
     */
    QuestionVO getQuestionById(Integer id);

    /**
     * 根据id修改状态
     * @param id
     * @param Status
     * @return
     */
    Integer updateQuestion(Integer id, Integer Status);

    /**
     * 根据id修改状态
     * @param id
     * @param Status_of_accept
     * @return
     */
    Integer updatAnswer(Integer id,Integer Status_of_accept);

    /**
     *
     * @param id answer表的id
     * @return
     */
    QuestionVO updateQuestionAnswer(Integer id,Integer userId);

    StatisticsVO statistics(Integer userId, String nickname );

    Integer updateQuestion(Integer id);

}
